﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
using FrbaBus.Core;

namespace FrbaBus.Abm_Micro
{
    public partial class ListaPatentes : Form
    {
        public ListaPatentes()
        {
            InitializeComponent();
        }
        public BajaMicro parent = null;
        public ListaPatentes(Form callingForm)
        {
            parent = callingForm as BajaMicro;

            InitializeComponent();
        }
        public string NewPatente = null;

        private void ListaPatentes_Load(object sender, EventArgs e)
        {

            DBManager db = new DBManager();
            // SE VE SI HAY MICROS QUE PUEDEN REEMPLAZAR EL QUE SE BORRA
            int valor = 0;
            if (parent.BajaDefinitiva == true)
            {
                SqlCommand consulta1 = new SqlCommand("EXECUTE ALL_IN.EsMicroReemplazable @Patente");
                consulta1.Parameters.Add("@Patente", SqlDbType.NVarChar)
                .Value = String.Copy(parent.OldPatente);
                SQLResponse r1 = db.executeQuery(consulta1);
                valor = (int)r1.result.Rows[0][0];
            }
            else if (parent.BajaDefinitiva == false)
            {
                SqlCommand consulta1 = new SqlCommand("EXECUTE ALL_IN.EsMicroReemplazableServicio @Patente,'" + 
                    parent.fromHora + "','" + parent.toHora + "'"); 

                consulta1.Parameters.Add("@Patente", SqlDbType.NVarChar)
                .Value = String.Copy(parent.OldPatente);
                SQLResponse r1 = db.executeQuery(consulta1);
                valor = (int)r1.result.Rows[0][0];
                
            }

            if (valor > 0)
            {
                // SE OFRECE UNA LISTA DE MICROS QUE PUEDEN REEMPLAZAR EL ANTERIOR

                if (parent.BajaDefinitiva == true)
                {
                    SqlCommand consulta2 = new SqlCommand("EXECUTE ALL_IN.MicrosReemplazables @Patente");
                    consulta2.Parameters.Add("@Patente", SqlDbType.NVarChar)
                .Value = String.Copy(parent.OldPatente);
                    SQLResponse r2 = db.executeQuery(consulta2);
                    //FORM CON LISTA DE PATENTES PARA SELECCIONAR
                    for (int i = 0; i < valor; i++)
                    {
                        dataGridView1.Rows.Add(r2.result.Rows[i][0].ToString(), r2.result.Rows[i][1].ToString(), r2.result.Rows[i][2].ToString(),
                            r2.result.Rows[i][3].ToString(), r2.result.Rows[i][4].ToString(), r2.result.Rows[i][5].ToString());
                    }
                }
                else if (parent.BajaDefinitiva == false)
                {
                    SqlCommand consulta2 = new SqlCommand("EXECUTE ALL_IN.MicrosReemplazablesServicio @Patente= '" + parent.OldPatente + "', @from= '" + parent.fromHora + "',@to= '" + parent.toHora + "'");
                    SQLResponse r2 = db.executeQuery(consulta2);
                    //FORM CON LISTA DE PATENTES PARA SELECCIONAR
                    for (int i = 0; i < valor; i++)
                    {
                        dataGridView1.Rows.Add(r2.result.Rows[i][0].ToString(), r2.result.Rows[i][1].ToString(), r2.result.Rows[i][2].ToString(),
                            r2.result.Rows[i][3].ToString(), r2.result.Rows[i][4].ToString(), r2.result.Rows[i][5].ToString());
                    }

                }
                
            }
            else
            {
                MessageBox.Show("No hay micros en condicion de reemplazar el que se desea dar de baja");
                this.Close();
            }
        }

       private void button1_Click(object sender, EventArgs e)
        {
            NewPatente = String.Copy(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
            parent.PatenteNueva = String.Copy(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
            this.Close();
        }
    }
}
